package com.itrencai.d7_map;

import java.util.*;

//map集合案例：投票人数统计
//某个班级多名学生秋游，四个景点ABCD，每个学生可以选择多个景点，统计处最终哪个景点想去的人最多
public class MapDemotoupiao2duo {
    public static void main(String[] args) {
     //1.要求程序记录每个学生具体选择的情况，使用一个Map集合存储
        Map<String, List<String>> data=new HashMap<>();//多态方式创建map集合存储对应学生和选择
        //2.把学生选择的数据存入进去
        List<String> selects=new ArrayList<>();//多态方式创建ArrayList集合存储选择的数据
        Collections.addAll(selects,"A","C");//一次性给选择数据集合里添加多个元素
        data.put("罗勇",selects);//键值对方式给map集合存储数据
        //System.out.println(data);
        List<String> selects1=new ArrayList<>();
        Collections.addAll(selects1,"B","C","D");
        data.put("郭涛",selects1);
        //System.out.println(data);
        List<String> selects2=new ArrayList<>();
        Collections.addAll(selects2,"A","B","C","D");
        data.put("刘军",selects2);
        System.out.println(data);

        //3.统计每个景点选择的人数
        Map<String,Integer> infos=new HashMap<>();//还是一个map集合存储景点和人

        //4.提取所有人选择景点的信息
        Collection<List<String>> values = data.values();//也是一个集合，存储的只有map集合的值
        System.out.println(values);
        //values=[[A,B,C,D],[B,C,D],[A,C]]
        for (List<String> value : values) {
            for (String s : value) {
                //有没有包含这个景点
                if(infos.containsKey(s)){
                    infos.put(s,infos.get(s)+1);//包含这个景点的话就s景点数加一
                }else{
                    infos.put(s,1);//不包含现在成为1
                }
            }
        }
        System.out.println(infos);

    }
}
